home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C / Frameworks / TransSkel 3.18 / Interface / TransSkel.intf < prev    next >
Encoding:
Text File  |  1994-11-16  |  12.1 KB  |  367 lines  |  [TEXT/PJMM]

  1. { Pascal interface specification for TransSkel }
  2. { for:       TransSkel 3.18 }
  3. { last edit: 16 Nov 94 }
  4.  
  5. {----------------------------------------------------------------------------}
  6. unit TransSkel;
  7. {----------------------------------------------------------------------------}
  8.  
  9. interface
  10. {----------------------------------------------------------------------------}
  11.     const
  12. {----------------------------------------------------------------------------}
  13.  
  14. { general }
  15.  
  16.         skelMajorRelease = 3;            { current release is 3.18 }
  17.         skelMinorRelease = 18;
  18.  
  19. { window property numbers }
  20.  
  21.         skelWPropAll = 0;                { pseudo-property }
  22.         skelWPropModeless = 1;            { modeless dialog }
  23.         skelWPropModal = 2;                { modal dialog }
  24.         skelWPropTool = 3;                { tool window }
  25.         skelWPropMovableModal = 4;        { movable modal dialog }
  26.         skelWPropHelp = 5;                { help window }
  27.         skelWPropText = 6;                { text window }
  28.         skelWPropDisplayWind = 7;        { TransDisplay window }
  29.         skelWPropEditWind = 8;            { TransEdit window }
  30.         skelWPropApplBase = 256;        { general-use prop num base }
  31.  
  32. { SkelQuery () query selectors }
  33.  
  34.         skelQVersion = 1;                { TransSkel version }
  35.         skelQSysVersion = 2;            { System software version }
  36.         skelQHasWNE = 3;                { whether has WaitNextEvent() }
  37.         skelQMBarHeight = 4;            { menu bar height }
  38.         skelQHas64KROM = 5;                { whether has 64K ROM }
  39.         skelQHasColorQD = 6;            { whether has Color QuickDraw }
  40.         skelQInForeground = 7;            { whether in foreground }
  41.         skelQHasGestalt = 8;            { whether has Gestalt() }
  42.         skelQHasAppleEvents = 9;        { whether has Apple Events }
  43.         skelQQDVersion = 10;            { QuickDraw version }
  44.         skelQGrayRgn = 11;                { Desktop region }
  45.  
  46. { convenience routines }
  47.  
  48.         skelPositionNone = 0;            { leave as is }
  49.         skelPositionOnMainDevice = 1;    { position on main device }
  50.         skelPositionOnParentWindow = 2;    { position on FrontWindow() }
  51.         skelPositionOnParentDevice = 3;    { position on FrontWindow()'s device }
  52.  
  53. { Apple menu number }
  54.  
  55.         skelAppleMenuID = 128;
  56.  
  57.  
  58. {----------------------------------------------------------------------------}
  59.     type
  60. {----------------------------------------------------------------------------}
  61.  
  62. { window property types }
  63.  
  64.         SkelWindPropPtr = ^SkelWindProperty;
  65.         SkelWindPropHandle = ^SkelWindPropPtr;
  66.         SkelWindProperty = record
  67.                 skelWPropType: Integer;
  68.                 skelWPropData: LongInt;
  69.                 skelWPropNext: SkelWindPropHandle;
  70.             end;
  71.  
  72. { initialization parameters }
  73.  
  74.         SkelInitParamsPtr = ^SkelInitParams;
  75.         SkelInitParams = record
  76.                 skelMoreMasters: Integer;
  77.                 skelGzProc: ProcPtr;
  78.                 skelResumeProc: ProcPtr;
  79.                 skelStackAdjust: Size;
  80.             end;
  81.  
  82. { Procedure types below are all equivalenced to ProcPtr. They're used so }
  83. { that procedure/function specifications will read more similarly to their }
  84. { C counterparts.  The comment preceding each type definition shows how }
  85. { procedures should be written. }
  86.  
  87. { miscellaneous procedure types }
  88.  
  89.         { procedure Idle; }
  90.         SkelIdleProcPtr = ProcPtr;
  91.         { procedure EventHook (event: EventRecord); }
  92.         SkelEventHookProcPtr = ProcPtr;
  93.         { procedure SuspendResume (inForeground: Boolean); }
  94.         SkelSuspendResumeProcPtr = ProcPtr;
  95.         { procedure ClipCvt (inForeground: Boolean); }
  96.         SkelClipCvtProcPtr = ProcPtr;
  97.         { procedure AEHandler (event: EventRecord); }
  98.         SkelAEHandlerProcPtr = ProcPtr;
  99.         { procedure DlogItemProc (dlog: DialogPtr; item: Integer); }
  100.         SkelDlogItemProcPtr = ProcPtr;
  101.  
  102. { window-handler procedure types }
  103.  
  104.         { procedure Mouse (where: Point; when: LongInt; modifiers: Integer); }
  105.         SkelWindMouseProcPtr = ProcPtr;
  106.         { procedure Key (c: char; code: Integer; modifiers: Integer); }
  107.         SkelWindKeyProcPtr = ProcPtr;
  108.         { procedure Update (resized: Boolean); }
  109.         SkelWindUpdateProcPtr = ProcPtr;
  110.         { procedure Activate (active: Boolean); }
  111.         SkelWindActivateProcPtr = ProcPtr;
  112.         { procedure Close; }
  113.         SkelWindCloseProcPtr = ProcPtr;
  114.         { procedure Clobber; }
  115.         SkelWindClobberProcPtr = ProcPtr;
  116.         { procedure WindIdle; }
  117.         SkelWindIdleProcPtr = ProcPtr;
  118.  
  119.         { procedure Select(dlog: DialogPtr; item:Integer); }
  120.         SkelWindSelectProcPtr = ProcPtr;
  121.         { procedure Zoom (wind: WindowPtr; zoomDir: Integer); }
  122.         SkelWindZoomProcPtr = ProcPtr;
  123.  
  124. { menu-handler procedure types }
  125.  
  126.         { procedure Select (item: Integer); }
  127.         SkelMenuSelectProcPtr = ProcPtr;
  128.         { procedure Clobber (menu: MenuHandle); }
  129.         SkelMenuClobberProcPtr = ProcPtr;
  130.  
  131.         { procedure MenuHook; }
  132.         SkelMenuHookProcPtr = ProcPtr;
  133.  
  134. { This is used for routines that pass around pointers to event }
  135. { records. }
  136.  
  137.         EventRecordPtr = ^EventRecord;
  138.  
  139. {----------------------------------------------------------------------------}
  140. { Core routines }
  141. {----------------------------------------------------------------------------}
  142.  
  143. { initialization/termination routines }
  144.  
  145.     procedure SkelGetInitParams (initParams: SkelInitParamsPtr);
  146.     procedure SkelInit (initParams: SkelInitParamsPtr);
  147.     procedure SkelCleanup;
  148.  
  149. { event-loop-related routines }
  150.  
  151.     procedure SkelEventLoop;
  152.     procedure SkelStopEventLoop;
  153.     procedure SkelRouteEvent (var event: EventRecord);
  154.     procedure SkelActivate (wind: WindowPtr;
  155.                                     active: Boolean);
  156.     procedure SkelClose (wind: WindowPtr);
  157.     function SkelGetCurrentEvent: EventRecordPtr;
  158.     function SkelGetModifiers: Integer;
  159.     procedure SkelSetEventMask (mask: Integer);
  160.     function SkelGetEventMask: Integer;
  161.     procedure SkelSetIdle (p: SkelIdleProcPtr);
  162.     function SkelGetIdle: SkelIdleProcPtr;
  163.     procedure SkelSetEventHook (p: SkelEventHookProcPtr);
  164.     function SkelGetEventHook: SkelEventHookProcPtr;
  165.     procedure SkelSetSuspendResume (p: SkelSuspendResumeProcPtr);
  166.     function SkelGetSuspendResume: SkelSuspendResumeProcPtr;
  167.     procedure SkelSetClipCvt (p: SkelClipCvtProcPtr);
  168.     function SkelGetClipCvt: SkelClipCvtProcPtr;
  169.     procedure SkelSetWaitTimes (fgTime: LongInt;
  170.                                     bgTime: LongInt);
  171.     procedure SkelGetWaitTimes (var fgTime: LongInt;
  172.                                     var bgTime: LongInt);
  173.  
  174.     procedure SkelSetAEHandler (p: SkelAEHandlerProcPtr);
  175.     function SkelGetAEHandler: SkelAEHandlerProcPtr;
  176.  
  177. { window handling routines }
  178.  
  179.     function SkelWindow (wind: WindowPtr;
  180.                                     doMouse: SkelWindMouseProcPtr;
  181.                                     doKey: SkelWindKeyProcPtr;
  182.                                     doUpdate: SkelWindUpdateProcPtr;
  183.                                     doActivate: SkelWindActivateProcPtr;
  184.                                     doClose: SkelWindCloseProcPtr;
  185.                                     doClobber: SkelWindClobberProcPtr;
  186.                                     doIdle: SkelWindIdleProcPtr;
  187.                                     frontOnly: Boolean): Boolean;
  188.     function SkelDialog (dlog: DialogPtr;
  189.                                     doFilter: ModalFilterProcPtr;
  190.                                     doEvent: SkelWindSelectProcPtr;
  191.                                     doClose: SkelWindCloseProcPtr;
  192.                                     doClobber: SkelWindClobberProcPtr): Boolean;
  193.     procedure SkelRmveWind (wind: WindowPtr);
  194.     procedure SkelRmveDlog (dlog: DialogPtr);
  195.     function SkelWindowRegistered (wind: WindowPtr): Boolean;
  196.     function SkelIsDlog (wind: WindowPtr): Boolean;
  197.     function SkelIsMMDlog (wind: WindowPtr): Boolean;
  198.     procedure SkelSetGrowBounds (wind: WindowPtr;
  199.                                     hLo: Integer;
  200.                                     vLo: Integer;
  201.                                     hHi: Integer;
  202.                                     vHi: Integer);
  203.     procedure SkelSetZoom (wind: WindowPtr;
  204.                                     p: SkelWindZoomProcPtr);
  205.     function SkelGetZoom (wind: WindowPtr): SkelWindZoomProcPtr;
  206.     function SkelGetRectDevice (r: Rect;
  207.                                     var gd: GDHandle;
  208.                                     var devRect: Rect;
  209.                                     var isMain: Boolean): Boolean;
  210.     function SkelGetWindowDevice (wind: WindowPtr;
  211.                                     var gd: GDHandle;
  212.                                     var devRect: Rect): Boolean;
  213.     procedure SkelGetWindContentRect (wind: WindowPtr;
  214.                                     var r: Rect);
  215.     procedure SkelGetWindStructureRect (wind: WindowPtr;
  216.                                     var r: Rect);
  217.     function SkelGetWindTitleHeight (wind: WindowPtr): Integer;
  218.  
  219.     function SkelAddWindProp (w: WindowPtr;
  220.                                     propType: Integer;
  221.                                     propData: LongInt): Boolean;
  222.     procedure SkelRmveWindProp (w: WindowPtr;
  223.                                     propType: Integer);
  224.     function SkelGetWindProp (w: WindowPtr;
  225.                                     propType: Integer): SkelWindPropHandle;
  226.     function SkelGetWindPropData (w: WindowPtr;
  227.                                     propType: Integer): LongInt;
  228.  
  229.  
  230.  
  231. { menu handling routines }
  232.  
  233.     function SkelMenu (menu: MenuHandle;
  234.                                     doSelect: SkelMenuSelectProcPtr;
  235.                                     doClobber: SkelMenuClobberProcPtr;
  236.                                     subMenu: Boolean;
  237.                                     drawMenuBar: Boolean): Boolean;
  238.     procedure SkelRmveMenu (menu: MenuHandle);
  239.  
  240.     procedure SkelSetMenuHook (p: SkelMenuHookProcPtr);
  241.     function SkelGetMenuHook: SkelMenuHookProcPtr;
  242.  
  243.  
  244. { environment information routines}
  245.  
  246.     function SkelQuery (selector: Integer): LongInt;
  247.     function SkelTrapAvailable (theTrap: Integer): Boolean;
  248.  
  249.  
  250. {----------------------------------------------------------------------------}
  251. { Auxiliary routines }
  252. {----------------------------------------------------------------------------}
  253.  
  254.     procedure SkelApple (items: Str255;
  255.                                     doSelect: SkelMenuSelectProcPtr);
  256.  
  257.     procedure SkelDoEvents (mask: Integer);
  258.     procedure SkelDoUpdates;
  259.  
  260.     function SkelDlogFilter (filter: ModalFilterProcPtr;
  261.                                     doReturn: Boolean): ModalFilterProcPtr;
  262.     function SkelDlogFilterYD (filter: ModalFilterYDProcPtr;
  263.                                     doReturn: Boolean): ModalFilterYDProcPtr;
  264.     procedure SkelRmveDlogFilter;
  265.     procedure SkelDlogDefaultItem (item: Integer);
  266.     procedure SkelDlogCancelItem (item: Integer);
  267.     procedure SkelDlogTracksCursor (track: Boolean);
  268.  
  269.     function SkelCmdPeriod (event: EventRecord): Boolean;
  270.  
  271.  
  272. {----------------------------------------------------------------------------}
  273. { Convenience routines }
  274. {----------------------------------------------------------------------------}
  275.  
  276.     procedure SkelGetMainDeviceRect (var r: Rect);
  277.     procedure SkelPositionRect (refRect: Rect;
  278.                                     var r: Rect;
  279.                                     hRatio: Fixed;
  280.                                     vRatio: Fixed);
  281.     procedure SkelGetReferenceRect (var r: Rect;
  282.                                     positionType: Integer);
  283.     procedure SkelPositionWindow (wind: WindowPtr;
  284.                                     positionType: Integer;
  285.                                     hRatio: Fixed;
  286.                                     vRatio: Fixed);
  287.     function SkelTestRectVisible (r: Rect): Boolean;
  288.  
  289. { alert presentation routines }
  290.  
  291.     function SkelAlert (alrtResNum: Integer;
  292.                                     filter: ModalFilterProcPtr;
  293.                                     positionType: Integer): Integer;
  294.     procedure SkelSetAlertPosRatios (hRatio: Fixed;
  295.                                     vRatio: Fixed);
  296.     procedure SkelGetAlertPosRatios (var hRatio: Fixed;
  297.                                     var vRatio: Fixed);
  298.  
  299. { control manipulation routines }
  300.  
  301.     function SkelHiliteControl (ctrl: ControlHandle;
  302.                                     hilite: Integer): Boolean;
  303.     procedure SkelDrawButtonOutline (ctrl: ControlHandle);
  304.     procedure SkelEraseButtonOutline (ctrl: ControlHandle);
  305.     procedure SkelFlashButton (ctrl: ControlHandle);
  306.     function SkelToggleCtlValue (ctrl: ControlHandle): Integer;
  307.  
  308. { dialog item manipulation routines }
  309.  
  310.     function SkelGetDlogCtl (dlog: DialogPtr;
  311.                                     item: Integer): ControlHandle;
  312.     function SkelSetDlogCtlHilite (dlog: DialogPtr;
  313.                                     item: Integer;
  314.                                     hilite: Integer): Boolean;
  315.     function SkelGetDlogCtlHilite (dlog: DialogPtr;
  316.                                     item: Integer): Integer;
  317.     procedure SkelSetDlogCtlValue (dlog: DialogPtr;
  318.                                     item: Integer;
  319.                                     value: Integer);
  320.     function SkelGetDlogCtlValue (dlog: DialogPtr;
  321.                                     item: Integer): Integer;
  322.     function SkelToggleDlogCtlValue (dlog: DialogPtr;
  323.                                     item: Integer): Integer;
  324.     procedure SkelSetDlogCtlRefCon (dlog: DialogPtr;
  325.                                     item: Integer;
  326.                                     value: LongInt);
  327.     function SkelGetDlogCtlRefCon (dlog: DialogPtr;
  328.                                     item: Integer): LongInt;
  329.     procedure SkelSetDlogStr (dlog: DialogPtr;
  330.                                     item: integer;
  331.                                     str: Str255);
  332.     procedure SkelGetDlogStr (dlog: DialogPtr;
  333.                                     item: integer;
  334.                                     var str: Str255);
  335.     procedure SkelSetDlogRect (dlog: DialogPtr;
  336.                                     item: integer;
  337.                                     r: Rect);
  338.     procedure SkelGetDlogRect (dlog: DialogPtr;
  339.                                     item: integer;
  340.                                     var r: Rect);
  341.     procedure SkelSetDlogProc (dlog: DialogPtr;
  342.                                     item: Integer;
  343.                                     p: SkelDlogItemProcPtr);
  344.     function SkelGetDlogProc (dlog: DialogPtr;
  345.                                     item: Integer): SkelDlogItemProcPtr;
  346.     procedure SkelSetDlogType (dlog: DialogPtr;
  347.                                     item: Integer;
  348.                                     itemType: Integer);
  349.     function SkelGetDlogType (dlog: DialogPtr;
  350.                                     item: Integer): Integer;
  351.     procedure SkelSetDlogRadioButtonSet (dlog: DialogPtr;
  352.                                     first: Integer;
  353.                                     last: Integer;
  354.                                     choice: Integer);
  355.     procedure SkelSetDlogButtonOutliner (dlog: DialogPtr;
  356.                                     item: Integer);
  357.     procedure SkelSetDlogCursor (dlog: DialogPtr);
  358.     function SkelDlogMapKeyToButton (dlog: DialogPtr;
  359.                                     evt: EventRecord;
  360.                                     var item: Integer;
  361.                                     defaultItem: Integer;
  362.                                     cancelItem: Integer): Boolean;
  363.  
  364.     procedure SkelPause (ticks: LongInt);
  365.  
  366. implementation
  367. end.